warning: 在撰寫複雜的可用程式碼之前,理解原型繼承模型很重要。另外,請注意程式碼內原型鏈的長度、必要時打破它們,以避免潛在的效能問題。再來,除非要處理 JavaScript 新語法的相容性,否則絕對不能擴充原生的原型
如何運用屬性 prototype,可以深入 JS 使用物件導向的能力:
(下面看一些程式慢慢熟悉 prototype 用法)
var o = {};
o.name = 'Saito';
o.occupation = 'marksman';
o.cyberizationLevel = 20;
function Ninja(){}
Ninja.prototype.swingSword = function(){
return true;
}
var ninja1 = Ninja();
ninja1 //undefined
var ninja2 = new Ninja();
ninja2.swingSword() //true
屬性查詢流程
function Ninja(){}
var ninja = new Ninja();
typeof ninja === "object" //true
ninja instanceof Ninja //true
ninja.constructor === Ninja //true
function Person(){}
Person.prototype.dance = function(){};
function Ninja(){}
Ninja.prototype = new Person();
var ninja = new Ninja();
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Inheritance_and_the_prototype_chain